/**
 * Copyright (c) 2018-2023, NXOS Development Team
 * SPDX-License-Identifier: Apache-2.0
 *
 * Contains: VirtIO over PCI Bus Interface
 *
 * Change Logs:
 * Date           Author            Notes
 * 2023-07-03     Shiroko           Init
 */
#ifndef __DRIVERS_VIRTIO_VIRTIO_PCI_H__
#define __DRIVERS_VIRTIO_VIRTIO_PCI_H__

#include <nxos.h>

/* VIRTIO PCI Interface */

/* PCI Setup & Clean Up */
NX_Error VirtioPCISetup(VirtioDriverTableEntity **driversTable);
void VirtioPCICleanUpDevice(NX_Device *device);
/* PCI Common Cfg */
void VirtioPCICommonConfigGet(NX_Device *device, VirtioCommonConfigItem item, void *value);
void VirtioPCICommonConfigSet(NX_Device *device, VirtioCommonConfigItem item, void *value);
/* PCI Device Cfg */
void *VirtioPCIGetDeviceConfig(NX_Device *device);
/* PCI Send Available Notification */
void VirtioPCISendNotification(NX_Device *device, NX_U16 queue_index);


#endif // __DRIVERS_VIRTIO_VIRTIO_PCI_H__
